package com.niit.covid.sum;


import com.niit.covid.bean.CovidCountBean;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

import java.io.IOException;

/**
 * @author:Ys
 * @date: 2022年08月11日 14:07
 * @desc:
 */
public class CovidSumReducer extends Reducer<Text, CovidCountBean,Text,CovidCountBean> {
    CovidCountBean outValue = new CovidCountBean();

    @Override           //  州       确诊数:1,3,4,5,6 死亡数：2,3,5,1,4
    protected void reduce(Text key, Iterable<CovidCountBean> values, Context context) throws IOException, InterruptedException {
        /**
         * 创建统计变量
         */
        long totalCases = 0;
        long totalDeaths = 0;

        /**
         * 遍历该州的各个县的数据
         */
        for(CovidCountBean value:values){
            //value 表示当前州的 每个县的确诊数 和 死亡数
            totalCases += value.getCases();//0+1+3+4+5+6 = 21 确诊总数
            totalDeaths += value.getDeaths();//0+2+3+5+1+4 = 15 死亡总数
        }


        /**
         * 输出结果赋值
         */
      outValue.set(totalCases,totalDeaths);
      context.write(key,outValue);// 输出的是 K    V

    }
}
